import {Component, OnInit} from '@angular/core';
import {FormGroup, FormBuilder, Validators} from '@angular/forms';
import {TransferService} from './transfer.service';

@Component({
    selector: 'app-step1',
    templateUrl: './step1.component.html',
})
export class Step1Component implements OnInit {
    form: FormGroup;

    constructor(private fb: FormBuilder, public item: TransferService) {
    }

    ngOnInit() {
        this.form = this.fb.group({
            pay_account: [
                null,
                Validators.compose([Validators.required, Validators.email]),
            ],
            receiver_type: [null, [Validators.required]],
            receiver_account: [null, [Validators.required]],
            receiver_name: [
                null,
                Validators.compose([Validators.required, Validators.minLength(2)]),
            ],
            amount: [
                null,
                Validators.compose([
                    Validators.required,
                    Validators.pattern(`[0-9]+`),
                    Validators.min(1),
                    Validators.max(10000 * 100),
                ]),
            ],
        });
        this.form.patchValue(this.item);
    }

    //#region get form fields
    get pay_account() {
        return this.form.controls['pay_account'];
    }

    get receiver_type() {
        return this.form.controls['receiver_type'];
    }

    get receiver_account() {
        return this.form.controls['receiver_account'];
    }

    get receiver_name() {
        return this.form.controls['receiver_name'];
    }

    get amount() {
        return this.form.controls['amount'];
    }

    //#endregion

    _submitForm() {
        this.item = Object.assign(this.item, this.form.value);
        ++this.item.step;
    }
}
